Digital differential pulse code modem

ABSTRACT

A differential pulse code modem receives digitally quantized samples of an input analog signal and produces digital words or codes representing difference levels. Each output word represents the difference between successive input samples. A comparable differential pulse code modem receives the digital words representing difference levels and reconstructs the original quantized samples. The quantized samples are then reconverted into a replica of the original analog signal. The bit rate of a communications system using said modem is reduced by transmitting digital words, some of which uniquely represent a single difference level, and some of which represent two distinct difference levels. Thus the total number of unique digital output words which can be transmitted is less than the total number of difference levels, about which information must be conveyed to the receiver. The apparent ambiguity caused by sending a digital word which represents two distinct difference levels is resolved by a technique which uses the same digital word to represent only disjoint difference levels. When subtracting a preceding sample from the present or current sample the resulting difference level cannot exceed a maximum positive or negative value determined by the dynamic range of the sample values. Two difference levels are disjoint if there exists no possible value for the preceding sample which could result in both difference levels. The same digital word is sent out whether the difference level information to be conveyed is the first or the second difference level. The reconstructed prior sample provides the information needed to exclude one of the disjoint levels represented by the received digital word.

Waited States Patent [191 Kaul et al.

[45] Mar. 27, 1973 [54] DIGITAL DIFFERENTIAL PULSE CODE MODEM [75] Inventors: Pradman P. Kaul, Washington,

DC; Leonard S. Golding, Rockville, Md.

[73] Assignee: Communications Satellite Corporation, Washington, D.C.

22 Filed: Dec. 30, 1971 [21] Appl. No.2 214,271

[52]- US. Cl. .....325/38 R, 179/15.55 R, 178/D1G. 3, 179/15 AP [51] Int. Cl..- ..H04b 1/66 [58] Field of Search ..325/38 R, 38 A, 38 B, 321, 325/141; 178/DIG. 3, 68; 179/1555 T, 15.55 R, 15 AC, 15 AP, 15 AV, 15 BW;332/9,11 R, 11 D [5 6] References Cited UNITED STATES PATENTS 3,422,227 1/1969 Brown ..325/38 R 3,646,445 2/1972 Reindl... 3,649,751 3/1972 So 3,662,266 5/1972 Limb et al ..325/38 8 Primary Examiner-Thomas A. Robinson Attorney-Richard C. Sughrue et al.

[57] ABSTRACT A differential pulse code modern receives digitally quantized samples of an input analog signal and produces digital words or codes representing difference levels. Each output word represents the difference between successive input samples. A comparable differential pulse code modem receives the digital words representing difference levels and reconstructs the original quantized samples. The quantized samples are then reconverted into a replica of the original analog signal. The bit rate of a communications system using said modem is reduced by transmitting digital words, some of which uniquely represent a single difference level, and some of which represent two distinct difference levels. Thus the total number of unique digital output words which can be transmitted is less than the total number of difference levels, about which information .must be conveyed to the receiver. The apparent ambiguity caused by sending a digital word which represents two distinct difference levels is resolved by a technique which uses the same digital word to represent only disjoint difference levels.

The same digital word is sent out whether the difference level information to be conveyed is the first or the second difference level. The reconstructed prior sample provides the information needed to exclude one of the disjoint levels represented by the received digital word.

22 Claims, 10 Drawing Figures 16 SAMPLE EDGE LOGIC CLOCK B. EDGE NOT EDGE D?) 26 28 I0 L2 l BINARY Bll PARALLEL ANALOG SAMPLE A/D SUBTRACTOR SELECTION 0 We cmcun 5i SFSHZM {I LOGIC SER'AL s ADDITION STORAGE LOGIC PATENTEDMARZYISIS 3,723,879

SHEET 1 BF 4 SAMPLE EDGE LOGIC CLOCK B EDGE NOTEDGE l4 0 1 0 26 28 I0 2 |8 2o BINARY BLT PARALLEL L SAMPLE 9... CIRCUH M MD SUBTRACTOR SELECTION T0 A i S S .;=A I LOGIC SERIAL SH 2 3 4 5 s Fl F SERIAL OUTPUT (5. 3 2h 30 32 0 as F g 33\ 44 A BIT r 34-\ c D4 1 2 T c 25 3s\ 3 [)6 b' C4 36* D{43 w H 286E EL c5 27 37\ I W -28 CLOCK PULSES ON T EDGE 48 46 PATENTEDHARZ'I 197a SHEET 3 0F 4 ELASTIC BUFFER EDGE LOGIC BIT SELECTION LOGIC BINARY SUBTRACTOR F i-I SAMPLE CLOCK ALOG SAMPLE cmcun ADDITION LOGIC STORAGE FIG. (5

E m E m m i w m mm m m m m a mw Mw m m q \r A J1. Ab J w m u M Kw m M m E m n mm $223 m D m p.15 =2J m a W KAN PATENTEDIIIIRZYIHYS T0 ELASTIC SHEET I OF 4 ADDITION HG. O

BINARY MARKER 6 BIT CODE DETECTOR ADDER BINARY 6 BIT ADDER RECEIVE SIDE BUFFER ELASTIC ADDITION LOGIC ANALOG FIG. 9

' STORAGE DIGITAL DIFFERENTIAL PULSE CODE MODEM BACKGROUND OF THE INVENTION This invention is in the field of differential pulse code modems (modulator-demodulator), and more particularly is a digital differential pulse code modem using disjoint intervals.

A pulse code modulator, as is well known, receives an analog input signal, samples the analog input signal at a sample rate and converts each sample into a digital equivalent. Assuming a quantization of six binary bits per sample, the possible dynamic range is 64 sample levels i.e., to 64 or 32 to +31, etc. In all such systems which convert analog signals into digital signals there is a certain amount of quantization noise. The quantization noise is dependent upon the analog difference between adjacent quantization levels. For example, assume an input signal which can vary between 0v. and 64v. is quantized into six bit digital words. Thus an analog sample of 5.1, 5.2, 5.3 or 5.9 volts will be quantized into a digital word representing 6.0 volts. The difference between the actual value of the sample, e.g., 5.3 volts, and the value represented by the digital word, eg 6 volts, is quantization noise.

Quantization noise can be reduced by increasing the number of levels for a given input range. Thus assuming the same dynamic input range, 0 64 volts, a seven bit quantization per sample will provide 128 possible levels, with thedifference between levels being only one half volt rather than a'full volt as in the previous case. While this technique reduces quantization noise it increases the number of bits per sample thereby increasing the bit rate for the output signal. An increased bit rate requires a great bandwidth in any communications system. In most communications systems, especially commercial systems, e.g. satellite communications, it is desirable to increase the amount of information per bandwidth ratio. Research is continuously being directed towards reducing the bandwidth required to transmit a given amount of information, or stated otherwise, towards increasing the amountv of information which can be transmitted over a given bandwidth. Thus, reducing quantization noise by increasing the number of bits per sample is not satisfactory.

Differential pulse code modulators have been used to reduce quantization noise in systems where it is most important to reduce such noise without increasing the bandwidth. Typically in a differential pulse code modulator (DPCM) the input signal sample is subtracted from the prior sample thereby forming a difference level. The difference level is then quantized into a digital word. The DPCM takes advantage of thefact that statistically the sample values will not vary much from sample to sample and therefore most difference values to be quantized will be quite small. Quantization is improved for a given number of bits per quantized difference value by packing the quantization levels close together at the low range of difference values and A further advance over the DPCM described is a digital DPCM, e.g., as disclosed in copending US. Pat. Application Ser. No. 38,951, filed May 20, l970 by Gabbard and Kaul and assigned to the same assignee herein. The digital DPCM quantizes the input samples prior to subtraction and, by a technique disclosed in the aforementioned patent application, achieves a reduction in the output bit rate. The reduction in hit rate is achieved, essentially, by ignoring relatively large sample-to-sample variances. The system described in the above mentioned application takes advantage of the fact that most difference values will be within a limited range.

The latter described systems have the disadvantage that they do not faithfully reproduce the input signal waveform at points where the input signal waveform takes a sharp jump in either the positive or negative direction. Although this may not be of sufficient importance in some cases, it is important where one is attempting to digitally transmit television (TV) pictures and faithfully reproduce the picture at the reception end of a system. In a TV picture the edges, which correspond to the outline of any object, e.g., a person against a background, appear in the video waveform as sharp amplitude jumps. Stated otherwise, when an edge occurs in the video signal there will be a large difference between successive samples. In the aforementioned systems, where large differences are ignored, it may take a period of time equivalent to four or five sample periods for the receiver to track the amplitude jump which actually took place in the original video signal in less than one sample period.

Another type of prior art DPCM takes care of the edge problem by using relatively few bits to indicate a non edge difference value and a larger number of bits to represent edge levels. An example of such systems is shown in the US. patent to E. F. Brown, U.S. Pat. No. 3,442,227. There, every difference level within the non-edge range is represented by a four bit code whose value corresponds to the difference level. Every edge placing the quantization levels relatively far apart at the level is represented by eight bits. Four of the eight bits constitute a marker or flag which indicates the presence of a difference value in the edge range. The remaining four bits indicate the value of the difference level.

SUMMARY OF THE INVENTION The present invention is a digital differential pulse code modem which achieves bit rate reduction, but not at the cost of ignoring TV edges.

In the DPCM of the present invention the quantization levels are spread over the entire range of possible difference values. However, many of the quantization code words, representing quantization levels, are used to represent two distinct quantization levels, hereinafter referred to as disjoint levels. By making multiple use of the same code words, there is a savings in the number of bits per code word required to transmit information about the quantization levels. The ambiguity is resolved since any two disjoint levels, represented by the same code word, are selected so that only one is possible for a given prior sample value.

The DPCM receives quantized samples 8,, where i represents present time, and forms a digital difference value, A,, by subtracting S, S, A binary code word A8, representing the difference value A,- is transmitted. In many cases the particular code word A,* not only represents the value of A, but also represents another difference value, the two difference values being 4 The quantized samples then can have any value in the range between 000000 and 111111 (i.e., to 63), and this range is the dynamic range of the samples of the input signal. The difference value, A is formed by disjoint. At the receiver, when A,* is received, s, will subtracting the Prior p 1-1. from the Present already have been reconstructed and stored. The value p 1 and can be y Value from to f S removes h bi i i A; representing two Table I below shows all possible difference values obdifference values, and the proper A, value represented mined y Subtracting SIX bit binary wordsby A,* is added to S, to reconstruct h sample 5,, term vector" is used herein interchangeably with the term word" as is common in digital parlance). Note, BRIEF DESCRIPTION OF DRAWINGS that seven bits including the borrow bit, B are necessary to represent the difference values. FIG. 1 is a block diagram of the transmit side ofa dif- The ubject invention sends out five bits per sample ferential pulse code modem. to represent 46 quantized levels. This seems impossible FIG. 2 is a logic diagram ofa means for detecting the since five bits can only have 32 unique combinations. range of difference values, said means being suitable However, it is accomplished by using disjoint levels in for use as one of the functional blocks of FIG. 1. the edge rangeand by using the same code to represent FIG. 3 is a logic diagram showing the details of the two disjoint levels. bit selection logic and parallel to serial converter of Two difference levels are defined as disjoint levels if F there is no possible value for the preceding sample, S

FIG. 4 is a logic diagram showing the details of the which could result in both difference levels. For examaddition logic of FIG. 1. ple, assume a range of 64 levels, 0 to 63. Also assume FIG. 5 is a general block diagram of the receive side that the Same Q bit Code, F, represents disjoint ofdifferentialpulse c d d levels +53 and -10. When the code (-53, -10) is FIG. 6 i a blo k di f h transmit id f a received it is apparent that only one can be correct. second embodiment of a differential pulse code The sample Values can y be in the range from O to mod +63, If the prior sample is anywhere between 0 and +9, FIG. 7 is a logic diagram showing the details of the the must represent because 8 if i Selection logic f p g added to the prior sample, would mean that the present FIG. 8 is a logic diagram showing the details of the Sample is Outside of the dynamic range an impossible i i logic f FIG. situation. If the prior sample has any value between FIG. 9 is a general block diagram of the receive side and the code mufit represent l f a second embodiment f a diff ti l pulse code because a difference value of +53, 1f added to the prior modem sample, would mean that the present sample is outside FIG. 10 is a block diagram ofa third example ofa difthe dynamic range- There exists no Prlor Sample Value feremiaj pulse code modem which could be common to both +53 and l0. Thus, by knowing the dynamic range and the value of sample DETAILED DESCRIPTION OF THE INVENTION H 3 given number of bits can be used to represent I twice as many difference levels or values as the number The invention will be explained by initially considerof unique combinations possible with said bits. ing a specific example of the DPCM. For this example In the specific DPCM used herein, disjoint levels are it is assumed that an analog input waveform is sampled used in coding the quantized difference levels. Howand each sample is quantized into a six bit binary ever, disjoint levels are used only for the edge ranges. representation, S, of the sample value. The output from Normal, as distinct from disjoint, difference levels are the DPCM is a five bit binary code word representing a used for the non-edge range, which in the specific exquantized difference level. ample to be described, is from A, =+7 to A, =-8.

I TABLE 1 B0 D1 D2 D3 D1 D5 D6 B1) D1 D2 D3 D4 D5 D5 Bu D1 D7 D3 D4 1):, Dr,

l-63 111 1 1 1 1 1 1 (0 0 1 0 1 0 0 -22 1 1 11 1 0 1 11 +62" 0 1 1 1 1 1 11 0 11 1 0 0 1 1 -23.. 1 1 11 1 11 11 1 +61" (0) 1 1 1 1 0 1 0 0 1 o 0 1 11 -24 (1 1 o 1 11 11 1) --1s0 (0) 1 1 1 1 11 11 0 0 1 11 0 1) 1 -25. 1 1 0 0 1 1 1 0 1 1 1 0 1 1 o o 1 o 11 11 0 2s (1 1 11 11 1 1 11 --5s (0) 1 1 1 o 1 o 0 11 0 1 1 1 1 -21 1 1 0 11 1 11 1 --57 (0 1 1 1 0 0 1 (0 0 11 1 1 1 11 -2s... 1) 1 0 11 1 11 11 "511-- (0) 1 1 1 0 11 11 (0 11 0 1 1 0 1 -29." (1 1 0 11 0 1 1 (0 1 1 0 1 1 1 0 0 o 1 1 0 0 30. 1 1 0 0 0 1 11 +54 .(0 110110 0 001011-31..(1)1011o111 53 (0)1 1 0 1 01 0 0 o 1 0 1 0-32... 1 1 11 0 0 52 0 1 1 0 1 0 11 0 1) o 1 0 0 1 33... 1 0 1 1 1 1 1 -51 (0) 1 1 0 11 1 1 0 0 11 1 0 0 o 34 1 0 1 1 1 1 11 +50" 0 1 1 0 0 1 11 0 0 0 0 1 1 1 35.. 1) 0 1 1 1 11 1 -49. (0) 1 1 11 0 11 1 0 0 0 0 1 1 0 -3s 1 0 1 1 1 0 0 $48-- (0 1 1 1) 0 0 0 0 11 o 0 .1 0 1 -31 (1 11 1 1 0 1 1 +47" (0) 1 0 1 1 1 1 0 o 0 0 1 0 0 -3s. 11 0 1 1 o 1 11 "40-- (01 1 0 1 1 1 11 0 o 0 0 0 1 1 -3 1 11 1 1 11 11 1 45-. (0 1 0 1 1 0 1 (11 0 0 0 o 1 0 -411 1 0 1 1 0 11 11 44 0 1 0 1 1 1) 1) 11 o 11 11 0 0 1 -41 1 11 1 11 1 1 1 13.. 111) 1 11 1 1) 1 1 111 11 1) n 11 11 11 -42 11 1) 1 1) 1 1 11 +41 111 1 11 1 11 1 11 (1 1 1 1 1 1 1 43. 11 1) 1 11 1 11 1 +41 111 1 11 1 1) 11 1 (1 1 1 1 1 1 1) -14... (1) 1) 1 11 1 11 1 +411. 111 1 11 1 11 11 1) 1 1 1 1 1 11 1 4.').. 11 11 1 1) 11 1 1 +3 1. (11 1 1) 11 1 1 1 1 1 1 1 1 11 1) -41) 1 1) 1 11 11 1 11 +311. (1) 1 1) 1) 1 1 1) 1 1 1 1 11 1 1 -47" (1 11 1 11 11 11 1 +37. 1 1) 1 11 11 1 11 1 11) 1 1 1 11 1 11 -411.. 11) 11 1 1) 11 1) 1) TABLE 1 Continued D1 D2 D3 D1 D5 D6 130 D1 D1 D3 D4 D5 D5 B D1 D3 D3 D 1),; 1);.

+a11 (u 1001011 (1)111o111-4 1 1 1101111 +3.1 .(0 100o11 1)11101111-50.. 1 (10111(1 +34.)10110111 (1)110111-51 1 11011111 +a3 0 11101101 (1 110110-52. (1)(1(1111111 +32 (0)10 (1 0 0 11 (1)1 10 1 (1 1413.. (1)0 (11111 +31 11) (1 1 1 1 1 1 (1) 1 1 11 1 (1 11 -54 1 11 (1 1 11 1 11 +30. 0) 0 1 1 1 1 11 1 1 1 11. 11 1 1 -55 1 11 (1 1 11 1) +211 (1 11 1 1 1 11 1 1) 1 1 11 1) 1 11 511. 1) 11 (1 1 11 (1 11 +21; 11 1) 1 1 1 (1 11 1 1 1 1) 11 11 1 51. 1) 11 11 (1 1 1 +27. (0) O 1 1 0 1 l (l) l l 0 ll 0 (l 58. (1) ll 0 0 l l 1 +26" (0) (1 1 1 1) 1 (1 (1) 1 (1 1 1 1 1 511.. 1) 1) (1 (1 1 (1 +25 11 (1 1 1 0 (1 1 (1) 1 (1 1 1 1 11 -1111. 1 1) 11 11 1 11 1 )01 111 0 0 (1) 1 0 1 1111-s1 1 (111111111 +23 (0)o10111 1 1011(1062. 1 o11(1(11(1 +2' 0 o10110 1 101011s3 1 110000 +21 0 o1o 1 o 1 Five bits are transmitted for each difference value (1)1 1001 1. If we simply dropped the two low order bits obtained in the DPCM. Four of the five bits represent a we would be quantizing l 3 difference value as a 16 value and the fifth bit indicates whether or not the edge level. Although this could be done, it is not our value is within or outside of the edge region. For the exchoice for reasons to be explained hereinafter. To ample being described, the symbol A,* represents the properly quantize difference values falling in the negafour bit binary vector and the symbol k represents the tive edge region, the two low order bits are dropped additional fifth bit which indicates the range. and a l bit is added to the remaining four bit vector.

The edge levels are shown in Table 11 below. The 16 Thus, if A 13, the code 1101 is obtained by codes which represent the IQ non-edge levels also d in the two low order bits, D and D and adding represent 28 edge levels. Note that each edge level a i l on bit to D,D D D A fifth bit (1 is tacked on code except 1 l 10, l l 1 l, 0000 and 0001 represents twO resulting in the five bit vector 11 101. The one bit in the disjoint levels. The latter four codes represent only four fir t ositio indicates an edge level, and the other four edge levels. This is not due to any deficiency in the use bits indicate the value of the level. of disjoint levels. Rather, it is due to the ease ofinip1e-. From Table II it is seen that most of the four bit mehtatloh with binary hhmber5- 30 codes represent two edge levels and one non edge level.

The decimal numbers next to the four bit codes in F example 1100 represents l l -16, +48, d 4, the edge level table show the correspondance between Th fifth bi di i i h h d f h non d the levels shown in Table I and those shown in the edge l l Th if h fif h bi i 0, lti i h vector tablehean be Seen that in the edge range the levels are 01100, the 4 level is identified. 11 the added bit is a four times the size of the levels in the non edge range. "1" bit, signifying an edge level 11100 i i known Although the decimal numbers indicate the Specific that the level identified by this five bit vector is either quantization levels used in the example described, it 16 +48 these twoieveis are di j i will be apparent that other quantization levels could be TABLE n selected. For example, instead of selecting +20 and +24 as quantization levels, one may choose +21 and 40 NON EDGE LEVELS EDGE LEVELS +25, or +26. The actual difference level selected as a L 8H5 (mm quantization level is certainly not critical and may be o ooio 56 selected for their convenience in implementation. 0100 0011 In the example shown in Table 11 any difference 88:3 :58 gig? :3 value between +8 and +1 1 will be quantized as +8; any +1 0001 +24 0110 40 difference value between +12 and +15 will be quan- 36 :32 tized as +12; etc. These groupings make it simple to 10 1001-28 quantize the difference values. For example assuming a -3 1101 +40 1010 24 difference value of +9, (001001), one can quantize I; 13?? 1:; was jg that difference value as level.+8 by simply replacing the 6 1010 +52 1101 12 two low order bits with zeroes. For the positive edge I; L 8 H levels shown in Table 11, the four bit codes are obtained by simply dropping the two low order bits of the dif- Three examples will be given herein to explain the ference value. Thus differences of +8, +9, +10, and operation of the DPCM. In all three cases the four bit +1 1 will be coded as 0010, representing the edge level 55 sequence 1 100 will be used to demonstrate the distinc- +8. A fifth bit, designated k, is tacked on to indicate tion in operation for the (l) non-edge level and 2 & that the four bit code represents an edge level. The four 3) the two disjoint edge levels. bit code can be converted back into a six bit difference value simply by adding two zero bits. EXAMPLE I Table n also Shows the negative g levels- The in all cases'the DPCM receives six bit input words levels are selected so that difference values 12, 13, representing samples of the video. The prior sample, are quantized as difference Values S is subtracted from the current sample, 8,. Assume, 1 are quahfized as 16; In this case for example I, that A is 4. The subtraction will prothe four bit codes of Table 11 cannot be obtained by vide an output;

simply dropping the two low order bits, as in the case of the positive edge levels. As an example, note that 12 corresponds (1)110100 and -13 corresponds to (Note that in the non-edge range D,, D, and D, will always be the same). The combination ofa B 1 and D,, D, and D 1 indicates that the difference value is in the non-edge range. Note that the coincidence of 3,,D,D D,, would also indicates a non-edge range.

The two high order bits, D, & D are dropped and a 0 bit is added to indicate that the four value bits designate a non-edge level. Thus, the bit sequence transmitted is 01 100 (k, and A,*).

By the time k, and A,* are received at the receiver and ready for processing, the sample value S, will have been calculated at the receiver DPCM.

The sequence 01100 is received and because of the 0 in the first bit position of the sequence it is known to be a non-edge level. Since the highest order bit in the four bit value A,* is a 1 bit, two 1 bits are added to form the six bit sequence 111100. The two added 1 bits correspond to the bits D and D which were dripped at the transmit side. The above six bit sequence represents the exact difference value (4). This value is added to the stored S, to form the sample value 8,.

1n the formation of S, at the receive side no mention was made of the value of (B,,), the original borrow bit. Referring to Table 1 it can be seen that A, +60 is also represented by the six bit sequence 111100, the same as A, 4. Thus, leaving out the borrow bit B,,, which distinguishes +60 from 4, seems to be a significant ommission. However, as will not be shown, it is in fact insignificant.

Since a 4 was originally generated, this means that the prior sample S, can have any dynamic value within the range +4 to +63, but could not possibly be +3, +2, +1 or 0. The opposite is true for the case where A, +60. However, it is not even necessary for the logic to recognize this because the binary addition of l 1 1 100 to any binary value between +4 and +63 will result in the proper six bit result. For example, assume S, +4, then Note, since only six bits are in the sample, the last carry over bit is eliminated.

To continue the example, assume that A, =+60. This would be represented by the same notation 111100. For this case the prior sample S, has to be either +3, +2, +1 or 0. The addition comes out to be:

EXAMPLE 11 For this case assume that S, S A, =+48. The binary sequence representing +48 will be 110000 with the borrow bit equal to zero. Since B 0, D 1, D 1 and D 0 we do not have a condition indicative of a non-edge level. Thus, the level is recognized as an edge level. The lowest two digits are dropped, (D and D resulting in the four bit value 1 100, and a 1 bit is added at the front end to signify that the value represents an edge level. Thus the sequence transmitted is 1 l 100.

On the receive side, the first 1 bit is recognized as signifying an edge level. Consequently two 0 bits are added to provide the six bit sequency 110000 which represents the binary value +48. The six bit binary number is added directly to the prior sample value S, to form the sample 8,.

If A, had been +51, +50 or +49 instead of +48, the same five bit vector would have been transmitted. For example if A, had been +50 it would have been represented by the binary vector 1 10010. Dropping the two low order bits and tacking on the edge indicating bit results in the five bit vector 1 l 100 being sent to the receive side of the DPCM. The operation at the receive side will be the same as described in the preceeding paragraph. It should be noted that hits D and D of the reconstructed A, at the receive are always zero, whereas D and D, at the transmitter can be 00, 10, 1 l or 01. However, this minor discrepancy is considered acceptable quantization noise.

EXAMPLE 111 For this case assume S, S, A, 16. This is represented by the binary value 1 10000 with the addition of a borrow bit B 1. Note that the borrow bit is the only distinguishing feature between A, +48 and A,

16. Since the condition of B,,, D D and D indicate s an edge level, the low order digits D and D are dropped and a one bit is tacked onto the front end of the sequence to designate an edge level. Thus the five bit sequence 1 1 is transmitted. Note, this is the identical five bit sequence sent out in Example 11 to designate A, +48. Here it is supposed to indicate A, 16.

On the receive side the first one bit indicates an edge level causing two zero bits to be tacked on to form the six bit sequence 1 10000. In the absence of a borrow bit the decimal value represented by this sequence is +48. However, in this example the real A, is 16, not +48. Notwithstanding the absence of the borrow bit, the correct sample S, will be reconstructed when 110000 is added directly to S,

The levels +48 and 16 are disjoint intervals. If A, 16 the prior sample S, must have been in the range between +16 and +63. The addition of the binary number corresponding to +48 to any binary number in the range between +16 and +63, yields the same result as would the subtraction ofl 6 from that number, provided the carry over to the seventh bit position is dropped. For example assume S, 32, then S, 100000 32 +A, +110000 +(l6) and adding a 1 bit to D, if and only if either D or D, is a l bit. Thus, assuming A, l9 2 101101, dropping D and D, leaves the vector 1011, and adding a 1 bit results in the vector 1 100, representing 16.

The above examples illustrate how the same four bit value code A,* can represent three possible levels. An additional fifth bit is needed to distinguish the non-edge from the edge levels. But no distinguishing feature is needed to distinguish two disjoint edge levels.

In FIG. 1 there is shown a general block diagram of the transmit portion of the DPCM. In the description of the drawings, unless it is specifically stated otherwise, the same example of six bits for the samples 8,, seven bits for the difference values A,, four bits for the code A,*, and a fifth bit, k, will be followed.

Theanalog input waveform is applied to a sample circuit 10 where it is sampled at a sample clock rate. The analog samples are applied to an analog to digital converter 12 which quantizes the analog samples into six bit digital samples. Each six bit sample is applied in parallel to a binary subtractor 14. A second input to the binary subtractor 14 is the six bit prior sample, S, which is stored in storage means 24. The binary subtractor performs binary subtraction on S, and S, to produce a seven bit output A, B,,D,D,D D,,D,,D,, S, S, Bits B,,, D,, D, and D,, of the difference A, are connected to an edge logic circuit 16 which provides an output on line 26 if A, is in the edge range and an output on line 28 if A, is in the non-edge range.

As pointed out above either the logic condition B -D, -D -D,, or fi 'fiffi 'fi indicates a non-edge level. All other combinations of those four bits indicates-an edge level. A simple self explanatory logic circuit which could be used for the edge logic of this specific example is illustrated in FIG. 2.

The six bits D D are applied in parallel to a bit selection logic circuit 18, which, in combination with the edge logic 16 comprises a means responsiveto A, for forming an output code, A,* and k. In the specific example herein, bit selection logic eliminates either bits D, and D or bits D and D,,, depending on whether A, is a non-edge or edge level adds a 1 bit if a negative edge range is indicated and either D or D, is a. 1" bit, and supplies the additional k bit to signify an edge or a non-edge level. An example of a logic circuit which would serve as a bit selection logic is shown in FIG. 3. The output of bit selection logic 18, which is five bits in parallel, is applied to a parallel to serial converter 20, also illustrated in FIG. 3.

Referring now to FIG. 3, the bit selection logic comprises AND gates 27, 29 and 30 through 38 and OR gates 25 and 40 through 43. The four bit parallel output from the OR gates 40 43 represents the code A,*.

The four bits D D are applied to an adder 23. The four bits will normally pass through adder 23 unaffected exceptin the one case where a negative edge range is indicated and either D, or D is a 1" bit. A negative edge range is indicated by the output of AND gate 27. If D or D is a l bit there will be an output from OR gate 25. The outputs from gates 25 and 27 are applied as inputs to AND gate 29, whose output is applied as an input to the adder 23.

If A, is an edge level, a logic 1 signal appears on lead 26 and gates bits D,, D D,,, D, through AND gates 30 34. The latter bits thus appear at the outputs of respective OR gates 40 43. If A, isa non-edge level, a

logic 1 signal appears on lead 28 and gates bits D D D D through AND gates 35 38. The latter bits thus appear at the outputs of respective OR gates 40 43. The outputs from the OR gates 40 43 are entered into four stages of five stage shift register 44 under control of a pulse on lead 50. The edge indicating lead line 26 is connected to the remaining stage of shift register 44. Thus if A, is an edge level, a 1 bit is entered into stage C, and bits D,, D D and D 4 are entered into respective stages C C,,, C, and C of register 44. If A, is a nonedge level, a 0 bit is entered into stage C,, and bits D D D and D are entered into respective stages C C C, and C The data in the shift register, which is A,* and k, is serially shifted out by clock pulses received from an output rate clock pulse generator, not shown. The latter clock pulses are also applied to a divide by five counter 46 which provides one output pulse for every five input pulses. The output pulse from divide by five counter 46 passes through delay means 48 and gates the next A, k into shift register 44. The delay is sufficient to allow the last bit in the shift register to be shifted out serially before the next five parallel bits are entered into the shift register.

The output from the parallel to serial converter represents the output of the DPCM on the transmit side. This output is received at the DPCM on the receive side, and, as will be explained, is operated on to reconstruct the original analog waveform. In actual practice there may be other functional elements between the transmit side output of the DPCM and the receive side input of the DPCM. For example the serial bits could be applied to a multiplexer and then to an error coder for improving the system bit error rate probability and then to a PSK modulator for transmitting the information via a satellite transponder. On the receive side the received signal would be PSK demodulated, applied to an error decoder which cooperates with the latter mentioned error coder, and then through a demultiplexer. However, any additional equipment interposed between the transmit and receive sides of the DPCM is not important to a complete understanding of the present invention. Whatever transmission equipment is interposed at the transmission end, corresponding receiver equipment is interposed at the receive end, so that the bit stream into the receive side of the DPCM is the same, except for possible errors, as the bit stream out of the transmit side of the DPCM. Furthermore, the parallel to serial converter may be unnecessary. As will be apparent it may be desirable to apply the output of bit selection logic to other means, e.g., a multiplexer, in parallel rather than in series. This can easily be accomplished by shifting out the contents of register 44 in parallel.

Referring back to FIG. 1, there is provided an addition logic circuit 22 which operates to add A, to S, to form 8,, which value is then placed in a storage means 24 to replace S, One specific example of the addition logic is illustrated in FIG. 4. The inputs designated C, through C correspond to the same five inputs to the shift register of FIG. 3. Thus when C, 1 an edge range is indicated. When C, 0 a non-edge range is indicated.

The addition logic comprises INVERT gate 52, AND gates 54 68, a pair of six bit binary adders and 72, and an OR gate 74. Each binary adder is adapted to receive two six bit binary vectors, add the two input vectors, and provide a six bit parallel output through OR gate 74 to the storage means 24 of FIG. 1. During the addition operation, any carry over to the seventh bit position does not appear in the adder output. The six bit vector S, is applied to both adders 70, 72 from storage means 24. The other input to the respective adders depends upon the code A,* and k, received from the bit selection logic.

If C, 1, thereby indicating an edge range, the bits C C,,, C, and C are gated through gates 54 60 and applied to input terminals D,, D D and D respectively, of adder 70. Binary bits are always entered into input terminals D and D The latter correspond to the two low order bits dropped from A, in the bit selection logic to form A,*. It will be apparent that since the input bits to D and D are always binary Os, even though the D and D bits in A, could have been any value between 00 and ll, the six bit vector into binary adder 70 will not always be identical to the six bits D, D of 13,. However, as noted previously, this small difference is tolerable quantization noise in the edge range. The 1 bit at C, is also applied to an input of adder 70 which initiates the addition operation.

If C, 0, indicating a non-edge range, the bits C C, are gated through AND gates 62 68 and applied to the respective input terminals D D of adder 72. The gating signal appears at the output of gate 52. The latter signal also initiates the addition operation of adder 72. It will be noted that when A, is in the nonedge range, bit C is applied to input terminals D, and D as well as input D of adder 72. The bits applied to D, and D correspond to the bits D, and D of A, which were eliminated in the bit selection logic. For the specific example described herein, it can be seen from Table I that whenever A, is in the non-edge range, bits D,, D and D will be identical.

A general block diagram of the receive side of the DPCM is illustrated in FIG. 5 and comprises a five bit serial to parallel converter 76, a six bit storage means 82, an addition logic circuit 78, and a digital to analog converter 80. The serial to parallel converter 76 receives A,* and k, in serial bit stream, and provides a five bit parallel output, A,* and k also designated by bit symbols C, C C, C, C,,. Any conventional word synchronizing technique may be used to insure five bit word synchronization between the transmit side and receive side. Such synchronization techniques are well known in digital communications systems which transmit via a satellite transponder. The output from converter 76 along with the six bit word stored in storage means 82 is applied to addition logic 78. The addition logic 78 may be identical to the addition logic on the transmit side, an example of which is illustrated in previously described FIG. 4. v

The output from logic 78 is the six bit reconstructed sample 5,. The latter sample S, is entered into storage means 82 and serves as S, for the next cycle of operation. The sample S, is also converted intb an analog signal by converter 80. The output from converter 80 thus represents the reconstructed input signal waveform.

In the detailed description of the specific embodiment it was pointed out that the quantization levels in the edge range may be other than those shown in Table II. It was further pointed out that the levels selected were chosen for ease of implementation. For example. the following difference levels,

Ill

were all quantized as 20. As is apparent, this could be accomplished by simply dropping D and D and replacing them with two 0 bits on the receive side. However, this creates a possible foldover error. Assuming S,-=+l and S1+1=+l8, A,- will be 17. However, quantizingA as 20 and adding that value to S1+1 results in an error as follows,

5, lllll0=+62.

The error is caused because the quantization level selected is not a large enough binary number to insure that the sum will be folded over" past zero when the quantization level is added to S To insure against this foldover error, when four adjacent difference levels are grouped together for quantization, they are quantized into the one represented by the largest binary number. Thus, the levels 18 E'(l)l0ll10 19 (1)10ll0l,

are all quantized as l 6.

It will also be apparent to one of ordinary skill in the art that quantization in the negative edge range could be carried out, without resulting in foldover error, by dropping D and D, and replacing them with two 1 bits. However, this could not be done in the positive edge range without causing foldover error. Suffice it to say that the actual values of the quantization levels are not critical to the invention, the important feature being that a given binary vector may represent two disjoint quantization levels.

The invention thus far has been described, generally, in terms of a bandwidth reduction technique for transmitting edges of a TV. waveform. As discussed, a five bit code word including one bit identifying an edge or non-edge region is transmitted in each sample period. However, as will now be described, it is possible to further reduce the bandwidth required to transmit edge information of a TV'waveform utilizing the inventive concepts already discussed.

To transmit one line of TV luminance information requires, for example, approximately 318 samples. Therefore, with the technique of the previously described embodiment, 318 bits, one for each sample, is required to inform the receiver whether the following four bits represents an edge or non-edge level. However, it has been determined that on the average each line of TV wave form will comprise approximately 50 edge regions. In the alternative embodiment to be described, advantage is taken of this average by transmitting an edge identifying code word, hereinafter referred to as a marker or flag, only when an edge is detected. More specifically, in response to a A in the nonedge region, only a four bit code word identifying the difference level is transmitted.

However, in response to a A, in the edge region, the four bit word representing said level will be preceeded in the transmitted bit stream by a four-bit marker code word. With an average of only 50 edges per line, the technique of the alternative embodiment requires the transmission of an average of only 200 (4 X 50) range identifying bits per line, whereas in the first embodiment described above, 318 range identifying bits would be transmitted.

All of the assumptions made in connection with the description of the first embodiment will be carried over to the description of this alternate embodiment. For example, the difference levels and quantization levels are assumed to be the same as shown in Tables I and II. There is an exception. In this embodiment either +7 (01 11) or 8 (1000) or both will not be used as non edge levels. Instead the four bits codes (0111) and/or (1000) will be reserved as marker codes. Simple logic can easily be provided for quantizing'difference values A, +7 and/or A, 8 as the lowest positive or negative edge levels. Also, many of the same or similar functional elements can be used and where such elements are similar to those used in the previously described embodiment, they will not be described in detail herein. FIG. 6 illustrates a general block diagram of the transmitter side of the alternative embodiment of the DPCM. It will be appreciated that the general block diagram differs from FIG. 1 only in the addition of an elastic buffer 106. It should also be noted that the bit selection logic 102 and addition logic 108 are different for this embodiment. As in the previous embodiment, the output of binary subtractor 14provides a difference value and the edge logic l6provides an indication whether the difference value represents an edge or a non-edge. Bit selection logic 102 differs from the prior embodiment in that here there is no additional bit tacked on to every four-bit code. Instead, if the difference represents a non-edge level, the four-bit code selected by the bit selection logic 102 is transmitted without any range indicating indica. On the other hand, if the difference level is an edge level, the four-bit code selected by bit selection logic 102 is preceded by a special four-bit marker code indicating that an edge level follows.

An example of suitable logic circuitry for use as the bit selection logic 102 of FIG. 6 is illustrated in FIG. 7. It will be noted that the logic of FIG. 7 preceding OR gates 40, 41, 42 and 43 is identical to the logic of FIG. 3. FIG. 7 differs in that it includes a divide by four counter 122, a four-bit marker code generator 110, AND gates 112 through 118, and an OR gate 124. The four bits representing a quantization level appear in parallel at the outputs of OR gates 40 through 43,

respectively. Locally generated clock pulses at the serial bit rate are applied to a divide by four counter 122 whose output is applied through a delay means 120 to the inputs of AND gates 112 through 118. The output of delay means 120 clocks the four bits through OR gating means 124 to the parallel to serial converter 104. If the four bits represent anon-edge level, no other bits pass through the OR circuit 124. However, when the four bits represent an edge level, an input is applied to the four-bit marker code generator to prepare it for generating a four-bit marker code. The latter marker code will be generated in response to an output from divider 122. It will be noted that in the case of an edge level, the four bits representing the level will be passed through OR circuit 124 immediately after the four-bit marker code. The output from OR circuit 124 is applied to the elastic buffer 106 which operates in a conventional manner to smooth the bit rate applied to the output for ultimate transmission to the receiver.

Referring back to FIG. 6, the addition logic 108 also differs slightly from the addition logic 22 in FIG. 1. The difference is that here each four-bit code is treated as a non-edge level in the absence of the special four-bit marker code indicating the presence of an edge level. A simple example of the logic suitable for the addition logic 108 is illustrated in FIG. 8. It will be noted that FIG. 8 is substantially identical to FIG. 4 of the first enibodiment with certain exceptions. FIG. 8 does not receive the C bit, which in the first embodiment indicates the presence or absence of an edge level. Furthermore, FIG. 8 includes a marker code detector 130, a single shot 132 and a delay means 134. The input to the marker code detector comprises the four parallel output bits from OR circuit 124 (FIG. 7). These four bits are normally applied through AND gates 62 through 68 and thereafter treated as a nonedge indicating level. When the four-bit marker code appears, marker code detector 130 provides an output which triggers single shot 132. The output from single shot 132 is applied to invert gate 52 to thereby block the AND gates 62 through 68. The output from single shot 132 is also supplied through a delay means 134 to I AND gates 54 through 60. Delay means 134 provides a brief delay substantially equal to the delay provided by delay means (FIG. 7). Thus, the four-bit marker code from generator 110 will neither pass through AND gates 62 to 68 or through AND gates 54 through 60. However, the immediately succeeding four-bits, which represent an edge level, will be passed through AND gates 54 through 60.

The rest of the operation of the apparatus shown in FIG. 6 may be identical to that of FIG. 1. The receive side of the alternate embodiment of the DPCM is illustrated in FIG. 9. It will be appreciated that FIG. 9 is similar to FIG. 5. The differences are that in FIG. 9 the receiver includes an elastic buffer 140, and the addition logic 142 is different than the addition logic of FIG. 5. The elastic buffer of FIG. 9 may be a conventional elastic buffer which receives a serial bit stream at its input and provides a four-bit parallel output. The fourbit parallel outputs from the elastic buffer 140 normally occur periodically in response to periodic clock pulses, not shown in the drawing. However, each time the fourbit output from the buffer 140 represents the marker code, the succeeding four-bits will be immediately read out thus causing the read-out timing from elastic buffer 140 to be substantially the same as the read-in timing to the elastic buffer 106.

The addition logic 142 is identical to the addition logic 108 used at the transmit side. Details of this addition logic are shown in FIG. 8. However, unlike the addition logic on the transmit side, the single shot 132 on the receive side provides an output to the elastic buffer which causes the immediate read-out of the succeeding four parallel bits whenever the four-bit marker code occurs. The duration of single shot 132 is such that an edge level represented by the same four bits as the marker code will not retrigger the single shot 132.

As one example for the choice of marker code words, and referring to Table II, two marker code words 0111 and 1000 may be employed. While either marker code" will indicate the presence of an edge sample, the use of two markers will enable the identification of a fifth-bit (which is not transmitted) and, hence, increase the number of quantization levels wherein the fifth-bit is the fifth most significant bit of the difference signal A If, for example, the fifth most significant bit, which is truncated by bit selection logic 102 happens to be a binary 1 then the marker code word 1000 may be transmitted. On the other hand, if the fifth most significant bit is a binary then the marker code word Ol 11 will be transmitted. This last mentioned technique provides an even further increase in the number of quantization levels obtainable for a given number of code bits.

Although the invention has been described above in connection with two specific embodiments, it will be apparent to anyone of ordinary skill in the art that the invention is not limited to a six bit sample, five or four bit output DPCM. Furthermore, although the specific examples included two ranges of difference levels, one including disjoint levels and the other including normal levels, the invention is not intended to be so limited. In its broadest aspect the invention is the use of disjoint intervals in a DPCM. A simple embodiment will be described with reference to FIG. to illustrate this point.

For the embodiment to be described, assume that a differential pulse code modulator receives three bit sequences, X X X representing samples 8,, where i= 1, 2, 3, 4, etc. The dynamic range of the input is shown in Table II].

S is subtracted from S, in subtraction means 90 to from the difference value A, which may range from +7 to -7. All possible A, values are represented in Table IV. Note that four bits (including borrow bit B are needed to uniquely identify the A, values. However, because of the use of disjoint intervals, only three bits need be transmitted. This is accomplished by simply not including the borrow bit at the output of subtraction means 90.

Assume A =+2 which is represented by:

The code AH 010, which would represent 6 as well as +2, is transmitted. However since the actual A,- is +2 then S, presently stored in storage means 92, must be in the range of0 to +5. The binary addition of 010 in binary adder 94 to any number in the range 0 to 5 will give the correct value 8,. Assume, for example, S =+3. Then,

In binary parlance 010 actually represent +2. However when +2 (010) is added in a binary adder to S (which for this case must be in the range between +7 and +6), and provided the last carry over bit is eliminated, it will be the same as adding 6.

The explanation of the addition means 98 and storage means 100 on the receive side is identical to that of means 92 and 94 on the transmit side. In each case the addition logic receives AH, adds A,* to S dropping any carry over to the fourth bit position, resulting in a three bit output 8,.

What is claimed is:

1. A differential pulse code modem for transmitting X difference levels with N-bit binary vectors, where X 2, comprising,

a. means for subtracting an input signal at time t from the said input signal at time 1,, to develop difference values A where i= 1, 2, 3,. etc.,

b. means responsive to each said difference value A for generating an N bit binary vector, where at least some binary N bit vectors represent two disjoint difference values, and

0. means for transmitting said binary N bit vectors.

2. A differential pulse code modulator as claimed in claim 1 wherein said subtracting means comprises,

a. a subtractor having two inputs, one of which is adapted to receive said input signal at time t,,

b. a storage means for storing a quantity representing the input signal at time 1 the said quantity being connected to the other input of said subtractor, and

c. addition logic means connected between said storage means and said N-bit binary vector generating means for adding A, represented by said N-bit binary vector to the quantity in said storage means and replacing the said quantity with the sum formed by said addition logic.

3. A differentialpulse code modulatoras claimed in claim 2 further comprising a receiver for receiving said N bit binary vector and reconstructing said input signal, said receiver comprising,

a. storage means for storing a quantity therein b. addition logic means responsive to each N bit binary vector for adding A, represented by said vector to the quantity stored in said storage means, and

c. means for replacing said quantity in said storage means with the sum formed by said addition logic.

4. A differential pulse code modem for conveying a series of items of information 8,, where i represents the order of occurrance, between first and second stations, the maximum dynamic range of said items being 2'", where each item is represented by an M-bit binary vector, said modem comprising a transmit portion and a receive portion, said transmit portion comprising,

a. storage means for storing an M-bit binary vector,

b. binary subtraction means connected to said storage means and also connected to receive said series of items of information, for subtracting said stored M-bit vector from S, to develop a binary difference A,, wherein each A, is represented by an M-bit binary vector 8,,

c. means responsive to A, when A, is in' a predetermined range of possible values for A, for generating an N-bit binary vector A,*, where N s M and wherein some A,* binary vectors represent two disjoint difference values, and for transmitting A,*,

. combining means responsive to said N bit binary vector A,* and said stored M bit vector for adding A, to said stored M bit vector to form a sum M bit vector, and

e. means for replacing the M bit vector stored in said storage means with said sum M bit vector.

5. A differential pulse code modulator as claimed in claim 4 wherein said combining means comprises,

a. means adapted to add M-N low order bits to each A,* generated by said generating means to form an M bit vector substantially identical to A,, and

b. binary addition means for adding said last mentioned M bit vector to said stored M bit vector, and dropping any carry over bit to the M+l bit position, to form said M bit sum.

6. A differential pulse code modulator as claimed in claim 5 wherein said predetermined range is the entire range of possible A, difference values 7. A differential pulse code modulator as claimed in claim 4 wherein all values of A, greater than a reference positive value or less than a reference negative level are within said predetermined range.

8. A differential pulse code modulator as claimed in claim 7 wherein said generating means further comprises means for generating a K bit code indicating that A, is within said predetermined range, and transmitting said K bit code along with A,* to indicate that A,* represents a A, value within said predetermined range.

9. A differential pulse code modulator as claimed in claim 8 further comprising,

a. second generating means responsive to A,, when A, is outside of said predetermined range, for generating an N bit binary vector A,*, wherein each A,* vector generated by said second generating means represents only one difference level A, outside said predetermined range.

10. A differential pulse code modulator as claimed in claim 9 wherein said second generating means comprises,

a. means for selecting the N least significant bits of A,

for each A, outside said predetermined range, and

b. means for generating a K bit code indicating that A, is outside said predetermined range and transmitting said K bit code along with A,* to indicate that A,* represents a A, value outside said predetermined range.

11. A differential pulse code modulator as claimed in claim 10 wherein said combining means comprises,

a. means responsive to each K bit code generated for detecting whether the associated A,* represents a A, which is within or outside said predetermined range,

. means responsive to a detection by said detecting means that A,* represents a A, which is within said predetermined range for adding M-N low order bits to A,* 'to form an M-bit vector substantially identical to A, at least in the N most significant bit positions,

c. means responsive to a detection by said detecting means that A,* represents a A, outside said predetermined range for adding M-N high order bits to A,* to form an M-bit vector identical to A,, and

. binary addition means for adding the M-bit vector formed by either of said latter two means to said stored M-bit vector, and dropping any carry over bit to the M+1 bit position, to form said M bit sum.

12. A differential pulse code modulator as claimed in claim 11 wherein K is a 1 bit code which is either a l or 0 depending on whether A, is within or outside said predetermined range,

comprises,

a. a storage means for storing an M-bit vector,

b. means responsive to the receipt of A,* for combining A, represented thereby with said stored M-bit vector to form an output M bit vector, and

c. means for replacing said M bit vector in said storage means with said output M-bit vector.

14. A differential pulse code modulator as claimed in claim 6 wherein said receive portion of said modem comprises,

a. a storage means for storing an M-bit vector,

b. means responsive to the receipt of each A,* for adding M-N low order bits to each A,* to form an M- bit vector identical to S, at least in the N most significant bit positions,

c. binary addition means for adding said last mentioned M-bit vector to said stored M-bit vector and dropping any carry over bit to the M+l bit position, to form an output M-bit vector, and

means for replacing said M-bit vector stored in said storage means with said output M-bit vector.

15. A differential pulse code modulator as claimed in claim 11 wherein said receive portion of said modem comprises,

a. a storage means for storing an M-bit vector, b. means responsive to the receipt of each K-bit code and associated A,* for detecting whether AR represents a A, value within or outside said predetermined range,

c. means responsive to a detection by said latter detecting means that A,* represents a A, value which is within said predetermined range for adding M-N low order bits to A,* to form an M-bit vector identical to A, at least in the N most significant bit positions,

d. means responsive to a detection by said latter detection means that A represents a A, value outside said predetermined range for adding M-N high order bits to A3 to form an M-bit vector identical to A e. binary addition means for adding the M-bit vector formed by either of said latter two means to said stored M-bit vector, and dropping any carry over bit to the M+1 bit position, to form an output M- bit vector, and

f. means for replacing said M-bit vector stored in said storage means with said output M-bit vector.

16. A differential pulse code modulator as claimed in claim wherein K is a 1 bit code which is either a l or 0 depending on whether A, is within or outside said predetermined range.

17. A differential pulse code modulator as claimed in claim 16 wherein M-N 2 18. A method of converting an input signal into code form, from which said input signal is reproducable, comprising,

code word in said limited set respectively represents a unique difference value within said first range of difference values.

20. The method as claimed in claim 19 wherein the step of generating comprises generating a single bit of a first value to accompany each code word representing a difference value in said first range, and generating a signal of a second value to accompany each code word representing a difference value in said second range.

21. The method as claimed in claim 19 wherein the step of generating comprises generating a marker code to accompany only those code words representing difference values in said second range.

22. A differential pulse code modem for converting an input signal into a digital representation thereof comprising,

a. means for periodically forming difference values equal to the amplitude difference of adjacent eriodic samples of said inputsignal, b. code selecting means responsive to said difference values for selecting one of a limited set of codes to represent said difference value, said code selecting means comprising means responsive to difference values |Al and IBl for selecting the identical code C to represent said difference values, where [Al {Bl equals the dynamic range of the input signal. 

1. A differential pulse code modem for transmitting X difference levels with N-bit binary vectors, where X>2N, comprising, a. means for subtracting an input signal at time ti 1 from the said input signal at time ti, to develop difference values Delta i, where i 1, 2, 3, . . . etc., b. means responsive to each said difference value Delta i for generating an N bit binary vector, where at least some binary N bit vectors represent two disjoint difference values, and c. means for transmitting said binary N bit vectors.
 2. A differential pulse code modulator as claimed in claim 1 wherein said subtracting means comprises, a. a subtractor having two inputs, one of which is adapted to receive said input signal at time ti, b. a storage means for storing a quantity representing the input signal at time ti 1, the said quantity being connected to the other input of said subtractor, and c. addition logic means connected between said storage means and said N-bit binary vector generating means for adding Delta i represented by said N-bit binary vector to the quantity in said storage means and replacing the said quantity with the sum formed by said addition logic.
 3. A differential pulse code modulator as claimed in claim 2 further comprising a receiver for receiving said N bit binary vector and reconstructing said input signal, said receiver comprising, a. storage means for storing a quantity therein b. addition logic means responsive to each N bit binary vector for adding Delta i represented by said vector to the quantity stored in said storage means, and c. means for replacing said quantity in said storage means with the sum formed by said addition logic.
 4. A differential pulse code modem for conveying a series of items of information Si, where i represents the order of occurrance, between first and second stations, the maximum dynamic range of said items being 2m, where each item is represented by an M-bit binary vector, said modem comprising a transmit portion and a receive portion, said transmit portion comprising, a. storage means for storing an M-bit binary vector, b. binary subtraction means connected to said storage means and also connected to receive said series of items of information, for subtracting said stored M-bit vector from Si to develop a binary difference Delta i, wherein each Delta i is represented by an M-bit binary vector Si, c. means responsive to Delta i when Delta i is in a predetermined range of possible values for Delta i for generating an N-bit binary vector Delta i*, where N < or = M and wherein some Delta i* binary vectors represent two disjoint difference values, and for transmitting Delta i*, d. combining means responsive to said N bit binary vector Delta i* and said stored M bit vector for adding Delta i to said stored M bit vector to form a sum M bit vector, and e. means for replacing the M bit vector stored in said storage means with said sum M bit vector.
 5. A differential pulse code modulator as claimed in claim 4 wherein said combining means comprises, a. means adapted to add M-N low order bits to each Delta i* generated by said generating means to form an M bit vector substantially identicAl to Delta i, and b. binary addition means for adding said last mentioned M bit vector to said stored M bit vector, and dropping any carry over bit to the M+1 bit position, to form said M bit sum.
 6. A differential pulse code modulator as claimed in claim 5 wherein said predetermined range is the entire range of possible Delta i difference values
 7. A differential pulse code modulator as claimed in claim 4 wherein all values of Delta i greater than a reference positive value or less than a reference negative level are within said predetermined range.
 8. A differential pulse code modulator as claimed in claim 7 wherein said generating means further comprises means for generating a K bit code indicating that Delta i is within said predetermined range, and transmitting said K bit code along with Delta i* to indicate that Delta i* represents a Delta i value within said predetermined range.
 9. A differential pulse code modulator as claimed in claim 8 further comprising, a. second generating means responsive to Delta i, when Delta i is outside of said predetermined range, for generating an N bit binary vector Delta i*, wherein each Delta i* vector generated by said second generating means represents only one difference level Delta i outside said predetermined range.
 10. A differential pulse code modulator as claimed in claim 9 wherein said second generating means comprises, a. means for selecting the N least significant bits of Delta i for each Delta i outside said predetermined range, and b. means for generating a K bit code indicating that Delta i is outside said predetermined range and transmitting said K bit code along with Delta i* to indicate that Delta i* represents a Delta i value outside said predetermined range.
 11. A differential pulse code modulator as claimed in claim 10 wherein said combining means comprises, a. means responsive to each K bit code generated for detecting whether the associated Delta i* represents a Delta i which is within or outside said predetermined range, b. means responsive to a detection by said detecting means that Delta i* represents a Delta i which is within said predetermined range for adding M-N low order bits to Delta i* to form an M-bit vector substantially identical to Delta i at least in the N most significant bit positions, c. means responsive to a detection by said detecting means that Delta i* represents a Delta i outside said predetermined range for adding M-N high order bits to Delta i* to form an M-bit vector identical to Delta i, and d. binary addition means for adding the M-bit vector formed by either of said latter two means to said stored M-bit vector, and dropping any carry over bit to the M+1 bit position, to form said M bit sum.
 12. A differential pulse code modulator as claimed in claim 11 wherein K is a 1 bit code which is either a 1 or 0 depending on whether Delta i is within or outside said predetermined range,
 13. A differential pulse code modulator as claimed in claim 4 wherein said receive portion of said modem comprises, a. a storage means for storing an M-bit vector, b. means responsive to the receipt of Delta i* for combining Delta i represented thereby with said stored M-bit vector to form an output M bit vector, and c. means for replacing said M bit vector in said storage means with said output M-bit vector.
 14. A differential pulse code modulator as claimed in claim 6 wherein said receive portion of said modem comprises, a. a storage means for storing an M-bit vector, b. means responsive to the receipt of each Delta i* for adding M-N low order bits to each Delta i* to form an M-bit vector identical to Si at least in the N most significant bit positions, c. Binary addition means for adding said last mentioned M-bit vector to said stored M-bit vector and dropping any carry over bit to the M+1 bit position, to form an output M-bit vector, and d. means for replacing said M-bit vector stored in said storage means with said output M-bit vector.
 15. A differential pulse code modulator as claimed in claim 11 wherein said receive portion of said modem comprises, a. a storage means for storing an M-bit vector, b. means responsive to the receipt of each K-bit code and associated Delta i* for detecting whether Delta i* represents a Delta i value within or outside said predetermined range, c. means responsive to a detection by said latter detecting means that Delta i* represents a Delta i value which is within said predetermined range for adding M-N low order bits to Delta i* to form an M-bit vector identical to Delta i at least in the N most significant bit positions, d. means responsive to a detection by said latter detection means that Delta i* represents a Delta i value outside said predetermined range for adding M-N high order bits to Delta i* to form an M-bit vector identical to Delta i, e. binary addition means for adding the M-bit vector formed by either of said latter two means to said stored M-bit vector, and dropping any carry over bit to the M+1 bit position, to form an output M-bit vector, and f. means for replacing said M-bit vector stored in said storage means with said output M-bit vector.
 16. A differential pulse code modulator as claimed in claim 15 wherein K is a 1 bit code which is either a 1 or 0 depending on whether i is within or outside said predetermined range.
 17. A differential pulse code modulator as claimed in claim 16 wherein M-N > or =
 2. 18. A method of converting an input signal into code form, from which said input signal is reproducable, comprising, a. sampling the input signal to form a series of samples, b. forming a difference value for each sample representing the difference between said sample and the preceeding sample, c. detecting whether said difference value is in a first or second range of possible difference values, d. selecting a code word from a limited set of code words to signify said difference value, at least some of said code words being selected for three unlike difference values, one in the first range and two disjoint difference values in the second range, and e. generating a signal to distinguish code words representing levels in said first range from code words representing levels in said second range.
 19. The method as claimed in claim 18 wherein every code word in said limited set respectively represents a unique difference value within said first range of difference values.
 20. The method as claimed in claim 19 wherein the step of generating comprises generating a single bit of a first value to accompany each code word representing a difference value in said first range, and generating a signal of a second value to accompany each code word representing a difference value in said second range.
 21. The method as claimed in claim 19 wherein the step of generating comprises generating a marker code to accompany only those code words representing difference values in said second range.
 22. A differential pulse code modem for converting an input signal into a digital representation thereof comprising, a. means for periodically forming difference values equal to the amplitude difference of adjacent periodic samples of said input signal, b. code selecting means responsive to said difference values for selecting one of a limited set of codes to represent said difference value, said code selecting means comprising means responsive to difference values + A and - B for selecting the identical code C to represent said difference values, whEre A + B equals the dynamic range of the input signal. 